diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php
index ffade93324..45165c3d2c 100644
--- a/src/__celerity_resource_map__.php
+++ b/src/__celerity_resource_map__.php
@@ -1,541 +1,550 @@
 <?php
 
 /**
  * This file is automatically generated. Use 'celerity_mapper.php' to rebuild
  * it.
  * @generated
  */
 
 celerity_register_resource_map(array(
   'aphront-dark-console-css' =>
   array(
     'uri' => '/res/056b0c12/rsrc/css/aphront/dark-console.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dark-console.css',
   ),
   'aphront-dialog-view-css' =>
   array(
-    'uri' => '/res/c8324e86/rsrc/css/aphront/dialog-view.css',
+    'uri' => '/res/7101ab69/rsrc/css/aphront/dialog-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/dialog-view.css',
   ),
   'aphront-error-view-css' =>
   array(
     'uri' => '/res/19b27527/rsrc/css/aphront/error-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/error-view.css',
   ),
   'aphront-form-view-css' =>
   array(
     'uri' => '/res/8aaef437/rsrc/css/aphront/form-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/form-view.css',
   ),
   'aphront-panel-view-css' =>
   array(
     'uri' => '/res/63672373/rsrc/css/aphront/panel-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/panel-view.css',
   ),
   'aphront-request-failure-view-css' =>
   array(
     'uri' => '/res/97b8337a/rsrc/css/aphront/request-failure-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/request-failure-view.css',
   ),
   'aphront-side-nav-view-css' =>
   array(
     'uri' => '/res/09b7eb85/rsrc/css/aphront/side-nav-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/side-nav-view.css',
   ),
   'aphront-table-view-css' =>
   array(
     'uri' => '/res/6a70f0f0/rsrc/css/aphront/table-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/table-view.css',
   ),
   'aphront-tokenizer-control-css' =>
   array(
     'uri' => '/res/a3d23074/rsrc/css/aphront/tokenizer.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-typeahead-control-css',
     ),
     'disk' => '/rsrc/css/aphront/tokenizer.css',
   ),
   'aphront-typeahead-control-css' =>
   array(
     'uri' => '/res/928df9f0/rsrc/css/aphront/typeahead.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/aphront/typeahead.css',
   ),
   'phabricator-standard-page-view' =>
   array(
     'uri' => '/res/4ebe4b10/rsrc/css/application/base/standard-page-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/base/standard-page-view.css',
   ),
   'differential-revision-add-comment-css' =>
   array(
     'uri' => '/res/aaae14d3/rsrc/css/application/differential/add-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/add-comment.css',
   ),
   'differential-changeset-view-css' =>
   array(
     'uri' => '/res/f26ca6f9/rsrc/css/application/differential/changeset-view.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/changeset-view.css',
   ),
   'differential-core-view-css' =>
   array(
     'uri' => '/res/525d1a12/rsrc/css/application/differential/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/core.css',
   ),
   'differential-revision-comment-list-css' =>
   array(
     'uri' => '/res/10b9a829/rsrc/css/application/differential/revision-comment-list.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment-list.css',
   ),
   'differential-revision-comment-css' =>
   array(
     'uri' => '/res/b271baaf/rsrc/css/application/differential/revision-comment.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-comment.css',
   ),
   'differential-revision-detail-css' =>
   array(
-    'uri' => '/res/230a67c6/rsrc/css/application/differential/revision-detail.css',
+    'uri' => '/res/7b5e95cc/rsrc/css/application/differential/revision-detail.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-detail.css',
   ),
   'differential-revision-history-css' =>
   array(
     'uri' => '/res/755f3da3/rsrc/css/application/differential/revision-history.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/revision-history.css',
   ),
   'differential-table-of-contents-css' =>
   array(
     'uri' => '/res/e68f6f05/rsrc/css/application/differential/table-of-contents.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/differential/table-of-contents.css',
   ),
   'phabricator-directory-css' =>
   array(
     'uri' => '/res/6a000601/rsrc/css/application/directory/phabricator-directory.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/directory/phabricator-directory.css',
   ),
   'mainphest-task-detail-css' =>
   array(
     'uri' => '/res/e5f3beca/rsrc/css/application/maniphest/task-detail.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-detail.css',
   ),
   'maniphest-task-summary-css' =>
   array(
     'uri' => '/res/10d5ec2e/rsrc/css/application/maniphest/task-summary.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/task-summary.css',
   ),
   'maniphest-transaction-detail-css' =>
   array(
     'uri' => '/res/658912c5/rsrc/css/application/maniphest/transaction-detail.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/application/maniphest/transaction-detail.css',
   ),
   'phabricator-object-selector-css' =>
   array(
     'uri' => '/res/52a7e289/rsrc/css/application/objectselector/object-selector.css',
     'type' => 'css',
     'requires' =>
     array(
       0 => 'aphront-dialog-view-css',
     ),
     'disk' => '/rsrc/css/application/objectselector/object-selector.css',
   ),
+  'phabricator-profile-css' =>
+  array(
+    'uri' => '/res/c3c5c82e/rsrc/css/application/people/profile.css',
+    'type' => 'css',
+    'requires' =>
+    array(
+    ),
+    'disk' => '/rsrc/css/application/people/profile.css',
+  ),
   'phabricator-core-buttons-css' =>
   array(
-    'uri' => '/res/ee35ffe1/rsrc/css/core/buttons.css',
+    'uri' => '/res/53b4f712/rsrc/css/core/buttons.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/buttons.css',
   ),
   'phabricator-core-css' =>
   array(
     'uri' => '/res/6eebb99b/rsrc/css/core/core.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/core.css',
   ),
   'phabricator-remarkup-css' =>
   array(
     'uri' => '/res/786989c3/rsrc/css/core/remarkup.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/remarkup.css',
   ),
   'syntax-highlighting-css' =>
   array(
     'uri' => '/res/fb673ece/rsrc/css/core/syntax.css',
     'type' => 'css',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/css/core/syntax.css',
   ),
   'javelin-behavior-dark-console' =>
   array(
     'uri' => '/res/020b0265/rsrc/js/application/core/behavior-dark-console.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/application/core/behavior-dark-console.js',
   ),
   'javelin-behavior-phabricator-object-selector' =>
   array(
-    'uri' => '/res/e849ced6/rsrc/js/application/core/behavior-object-selector.js',
+    'uri' => '/res/4fe735af/rsrc/js/application/core/behavior-object-selector.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/core/behavior-object-selector.js',
   ),
   'javelin-behavior-aphront-basic-tokenizer' =>
   array(
     'uri' => '/res/8317d761/rsrc/js/application/core/behavior-tokenizer.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/core/behavior-tokenizer.js',
   ),
   'javelin-behavior-workflow' =>
   array(
     'uri' => '/res/15446e7e/rsrc/js/application/core/behavior-workflow.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/core/behavior-workflow.js',
   ),
   'javelin-behavior-differential-add-reviewers' =>
   array(
     'uri' => '/res/330154e4/rsrc/js/application/differential/behavior-add-reviewers.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-add-reviewers.js',
   ),
   'javelin-behavior-differential-feedback-preview' =>
   array(
     'uri' => '/res/8695d8b8/rsrc/js/application/differential/behavior-comment-preview.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js',
   ),
   'javelin-behavior-differential-diff-radios' =>
   array(
     'uri' => '/res/fdeb3823/rsrc/js/application/differential/behavior-diff-radios.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js',
   ),
   'javelin-behavior-differential-edit-inline-comments' =>
   array(
     'uri' => '/res/74747b2e/rsrc/js/application/differential/behavior-edit-inline-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js',
   ),
   'javelin-behavior-differential-populate' =>
   array(
     'uri' => '/res/a13dcd7e/rsrc/js/application/differential/behavior-populate.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-populate.js',
   ),
   'javelin-behavior-differential-show-all-comments' =>
   array(
     'uri' => '/res/2a3592b8/rsrc/js/application/differential/behavior-show-all-comments.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js',
   ),
   'javelin-behavior-differential-show-more' =>
   array(
     'uri' => '/res/ea998002/rsrc/js/application/differential/behavior-show-more.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/differential/behavior-show-more.js',
   ),
   'javelin-behavior-maniphest-transaction-controls' =>
   array(
     'uri' => '/res/fc6a8722/rsrc/js/application/maniphest/behavior-transaction-controls.js',
     'type' => 'js',
     'requires' =>
     array(
       0 => 'javelin-lib-dev',
     ),
     'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js',
   ),
   'javelin-magical-init' =>
   array(
     'uri' => '/res/76614f84/rsrc/js/javelin/init.dev.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/init.dev.js',
   ),
   'javelin-init-prod' =>
   array(
     'uri' => '/res/1267c868/rsrc/js/javelin/init.min.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/init.min.js',
   ),
   'javelin-lib-dev' =>
   array(
     'uri' => '/res/a0e7a5e9/rsrc/js/javelin/javelin.dev.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/javelin.dev.js',
   ),
   'javelin-lib-prod' =>
   array(
     'uri' => '/res/2f2b3b2e/rsrc/js/javelin/javelin.min.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/javelin.min.js',
   ),
   'javelin-typeahead-dev' =>
   array(
     'uri' => '/res/6de6ae59/rsrc/js/javelin/typeahead.dev.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/typeahead.dev.js',
   ),
   'javelin-typeahead-prod' =>
   array(
     'uri' => '/res/69d5fad1/rsrc/js/javelin/typeahead.min.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/typeahead.min.js',
   ),
   'javelin-workflow-dev' =>
   array(
     'uri' => '/res/c6b17f93/rsrc/js/javelin/workflow.dev.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/workflow.dev.js',
   ),
   'javelin-workflow-prod' =>
   array(
     'uri' => '/res/b758e0a0/rsrc/js/javelin/workflow.min.js',
     'type' => 'js',
     'requires' =>
     array(
     ),
     'disk' => '/rsrc/js/javelin/workflow.min.js',
   ),
 ), array (
   'packages' =>
   array (
-    'aa43d409' =>
+    '93a93aee' =>
     array (
       'name' => 'core.pkg.css',
       'symbols' =>
       array (
         0 => 'phabricator-core-css',
         1 => 'phabricator-core-buttons-css',
         2 => 'phabricator-standard-page-view',
         3 => 'aphront-dialog-view-css',
         4 => 'aphront-form-view-css',
         5 => 'aphront-panel-view-css',
         6 => 'aphront-side-nav-view-css',
         7 => 'aphront-table-view-css',
         8 => 'aphront-tokenizer-control-css',
         9 => 'aphront-typeahead-control-css',
         10 => 'phabricator-directory-css',
         11 => 'phabricator-remarkup-css',
         12 => 'syntax-highlighting-css',
       ),
-      'uri' => '/res/pkg/aa43d409/core.pkg.css',
+      'uri' => '/res/pkg/93a93aee/core.pkg.css',
       'type' => 'css',
     ),
-    '2525bbc7' =>
+    'fcf7ec68' =>
     array (
       'name' => 'differential.pkg.css',
       'symbols' =>
       array (
         0 => 'differential-core-view-css',
         1 => 'differential-changeset-view-css',
         2 => 'differential-revision-detail-css',
         3 => 'differential-revision-history-css',
         4 => 'differential-table-of-contents-css',
         5 => 'differential-revision-comment-css',
         6 => 'differential-revision-add-comment-css',
         7 => 'differential-revision-comment-list-css',
       ),
-      'uri' => '/res/pkg/2525bbc7/differential.pkg.css',
+      'uri' => '/res/pkg/fcf7ec68/differential.pkg.css',
       'type' => 'css',
     ),
     '30d594cf' =>
     array (
       'name' => 'differential.pkg.js',
       'symbols' =>
       array (
         0 => 'javelin-behavior-differential-feedback-preview',
         1 => 'javelin-behavior-differential-edit-inline-comments',
         2 => 'javelin-behavior-differential-populate',
         3 => 'javelin-behavior-differential-show-more',
         4 => 'javelin-behavior-differential-diff-radios',
       ),
       'uri' => '/res/pkg/30d594cf/differential.pkg.js',
       'type' => 'js',
     ),
   ),
   'reverse' =>
   array (
-    'phabricator-core-css' => 'aa43d409',
-    'phabricator-core-buttons-css' => 'aa43d409',
-    'phabricator-standard-page-view' => 'aa43d409',
-    'aphront-dialog-view-css' => 'aa43d409',
-    'aphront-form-view-css' => 'aa43d409',
-    'aphront-panel-view-css' => 'aa43d409',
-    'aphront-side-nav-view-css' => 'aa43d409',
-    'aphront-table-view-css' => 'aa43d409',
-    'aphront-tokenizer-control-css' => 'aa43d409',
-    'aphront-typeahead-control-css' => 'aa43d409',
-    'phabricator-directory-css' => 'aa43d409',
-    'phabricator-remarkup-css' => 'aa43d409',
-    'syntax-highlighting-css' => 'aa43d409',
-    'differential-core-view-css' => '2525bbc7',
-    'differential-changeset-view-css' => '2525bbc7',
-    'differential-revision-detail-css' => '2525bbc7',
-    'differential-revision-history-css' => '2525bbc7',
-    'differential-table-of-contents-css' => '2525bbc7',
-    'differential-revision-comment-css' => '2525bbc7',
-    'differential-revision-add-comment-css' => '2525bbc7',
-    'differential-revision-comment-list-css' => '2525bbc7',
+    'phabricator-core-css' => '93a93aee',
+    'phabricator-core-buttons-css' => '93a93aee',
+    'phabricator-standard-page-view' => '93a93aee',
+    'aphront-dialog-view-css' => '93a93aee',
+    'aphront-form-view-css' => '93a93aee',
+    'aphront-panel-view-css' => '93a93aee',
+    'aphront-side-nav-view-css' => '93a93aee',
+    'aphront-table-view-css' => '93a93aee',
+    'aphront-tokenizer-control-css' => '93a93aee',
+    'aphront-typeahead-control-css' => '93a93aee',
+    'phabricator-directory-css' => '93a93aee',
+    'phabricator-remarkup-css' => '93a93aee',
+    'syntax-highlighting-css' => '93a93aee',
+    'differential-core-view-css' => 'fcf7ec68',
+    'differential-changeset-view-css' => 'fcf7ec68',
+    'differential-revision-detail-css' => 'fcf7ec68',
+    'differential-revision-history-css' => 'fcf7ec68',
+    'differential-table-of-contents-css' => 'fcf7ec68',
+    'differential-revision-comment-css' => 'fcf7ec68',
+    'differential-revision-add-comment-css' => 'fcf7ec68',
+    'differential-revision-comment-list-css' => 'fcf7ec68',
     'javelin-behavior-differential-feedback-preview' => '30d594cf',
     'javelin-behavior-differential-edit-inline-comments' => '30d594cf',
     'javelin-behavior-differential-populate' => '30d594cf',
     'javelin-behavior-differential-show-more' => '30d594cf',
     'javelin-behavior-differential-diff-radios' => '30d594cf',
   ),
 ));
diff --git a/src/applications/people/controller/profile/PhabricatorPeopleProfileController.php b/src/applications/people/controller/profile/PhabricatorPeopleProfileController.php
index 4f1a76efbe..a865830539 100644
--- a/src/applications/people/controller/profile/PhabricatorPeopleProfileController.php
+++ b/src/applications/people/controller/profile/PhabricatorPeopleProfileController.php
@@ -1,44 +1,149 @@
 <?php
 
 /*
  * Copyright 2011 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 class PhabricatorPeopleProfileController extends PhabricatorPeopleController {
 
   private $username;
 
   public function willProcessRequest(array $data) {
     $this->username = $data['username'];
   }
 
   public function processRequest() {
 
+    $viewer = $this->getRequest()->getUser();
+
     $user = id(new PhabricatorUser())->loadOneWhere(
       'userName = %s',
       $this->username);
     if (!$user) {
       return new Aphront404Response();
     }
 
+    $links = array();
+
+    if ($user->getPHID() == $viewer->getPHID()) {
+      $links[] = phutil_render_tag(
+        'a',
+        array(
+          'href' => '/p/'.$user->getUsername().'/edit/',
+        ),
+        'Edit Profile');
+    }
+
+    $fbuid = $user->getFacebookUID();
+    if ($fbuid) {
+      $links[] = phutil_render_tag(
+        'a',
+        array(
+          'href' => 'http://www.facebook.com/profile.php?id='.$fbuid,
+        ),
+        'Facebook Profile');
+    }
+
+    foreach ($links as $k => $link) {
+      $links[$k] = '<li>'.$link.'</li>';
+    }
+    $links =
+      '<ul class="profile-nav-links">'.
+        implode("\n", $links).
+      '</ul>';
+
+    $username_tag =
+      '<h1 class="profile-username">'.
+        phutil_escape_html($user->getUserName()).
+      '</h1>';
+    $realname_tag =
+      '<h2 class="profile-realname">'.
+        '('.phutil_escape_html($user->getRealName()).')'.
+      '</h2>';
+    $title_tag =
+      '<h2 class="profile-usertitle">'.
+        'Cool Title'.
+      '</h2>';
+
+    $src_phid = $user->getProfileImagePHID();
+    $src = PhabricatorFileURI::getViewURIForPHID($src_phid);
+
+    $picture = phutil_render_tag(
+      'img',
+      array(
+        'class' => 'profile-image',
+        'src'   => $src,
+      ));
+
+    require_celerity_resource('phabricator-profile-css');
+
+    $blurb = 'just build marawdars dood';
+
+    $content =
+      '<div class="phabricator-profile-info-group">
+        <h1 class="phabricator-profile-info-header">Basic Information</h1>
+        <div class="phabricator-profile-info-pane">
+          <table class="phabricator-profile-info-table">
+            <tr>
+              <th>PHID</th>
+              <td>'.phutil_escape_html($user->getPHID()).'</td>
+            </tr>
+            <tr>
+              <th>User Since</th>
+              <td>'.phabricator_format_timestamp($user->getDateCreated()).'</td>
+            </tr>
+          </table>
+        </div>
+      </div>';
+    $content .=
+      '<div class="phabricator-profile-info-group">
+        <h1 class="phabricator-profile-info-header">Flavor Text</h1>
+        <div class="phabricator-profile-info-pane">
+          <table class="phabricator-profile-info-table">
+            <tr>
+              <th>Blurb</th>
+              <td>'.$blurb.'</td>
+            </tr>
+          </table>
+        </div>
+      </div>';
+
+    $profile =
+      '<table class="phabricator-profile-master-layout">
+        <tr>
+          <td class="phabricator-profile-navigation">'.
+            $username_tag.
+            $realname_tag.
+            $title_tag.
+            '<hr />'.
+            $picture.
+            '<hr />'.
+            $links.
+            '<hr />'.
+          '</td>
+          <td class="phabricator-profile-content">'.
+          $content.
+          '</td>
+        </tr>
+      </table>';
 
     return $this->buildStandardPageResponse(
-      array('this is a profile thingie'),
+      $profile,
       array(
         'title' => $user->getUsername(),
       ));
   }
 
 }
diff --git a/src/applications/people/controller/profile/__init__.php b/src/applications/people/controller/profile/__init__.php
index 6993f52ebb..099425d646 100644
--- a/src/applications/people/controller/profile/__init__.php
+++ b/src/applications/people/controller/profile/__init__.php
@@ -1,16 +1,20 @@
 <?php
 /**
  * This file is automatically generated. Lint this module to rebuild it.
  * @generated
  */
 
 
 
 phutil_require_module('phabricator', 'aphront/response/404');
+phutil_require_module('phabricator', 'applications/files/uri');
 phutil_require_module('phabricator', 'applications/people/controller/base');
 phutil_require_module('phabricator', 'applications/people/storage/user');
+phutil_require_module('phabricator', 'infrastructure/celerity/api');
+phutil_require_module('phabricator', 'view/utils');
 
+phutil_require_module('phutil', 'markup');
 phutil_require_module('phutil', 'utils');
 
 
 phutil_require_source('PhabricatorPeopleProfileController.php');
diff --git a/webroot/rsrc/css/application/people/profile.css b/webroot/rsrc/css/application/people/profile.css
new file mode 100644
index 0000000000..75e94007c1
--- /dev/null
+++ b/webroot/rsrc/css/application/people/profile.css
@@ -0,0 +1,86 @@
+/**
+ * @provides phabricator-profile-css
+ */
+
+.phabricator-profile-master-layout {
+  width: 100%;
+}
+
+.phabricator-profile-navigation {
+  width: 300px;
+  background: #efefef;
+  border-right: 1px solid #cccccc;
+}
+
+.phabricator-profile-content {
+  padding: 2em 2%;
+}
+
+.phabricator-profile-info-group {
+  margin-bottom: 2em;
+  background: #efefef;
+  border-top: 1px solid #cccccc;
+}
+
+.phabricator-profile-info-header {
+  padding: 8px;
+  background: #dfdfdf;
+}
+
+.phabricator-profile-info-pane {
+  padding: 8px 2em;
+}
+
+.phabricator-profile-info-table {
+  width: 100%;
+}
+
+.phabricator-profile-info-table th {
+  font-weight: bold;
+  text-align: right;
+  color: #666666;
+  width: 10%;
+  padding: 4px;
+}
+
+.phabricator-profile-info-table td {
+  width: 100%;
+  padding: 4px;
+}
+
+.phabricator-profile-navigation hr {
+  border: none;
+  background: #cccccc;
+  padding: 0;
+  margin: 10px 0;
+  height: 1px;
+}
+
+.phabricator-profile-navigation {
+  padding-top: 8px;
+  padding-bottom: 8em;
+}
+
+.phabricator-profile-navigation h1,
+.phabricator-profile-navigation h2 {
+  padding: 2px 8px;
+}
+
+h2.profile-realname {
+  color: #666666;
+}
+
+img.profile-image {
+  width: 280px;
+  margin: 10px;
+}
+
+ul.profile-nav-links li a {
+  display: block;
+  padding: 4px 8px 4px 12px;
+  font-weight: bold;
+}
+
+ul.profile-nav-links li a:hover {
+  background: #cccccc;
+}