Hello, Startup Website
This is the website and mobile app for Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams, an O'Reilly book by Yevgeniy Brikman.
- The Hello, Startup website is available at http://www.hello-startup.net.
- Contributions, especially to the list of Startup Resources, are welcome via pull request (see instructions below).
- The mobile app version is currently on pause as the market doesn't seem big enough for it.
Running the website
grunt command runs
grunt watch, which will watch for changes in the
background and recompile everything as necessary. Jekyll is a bit slow, so it
can take ~5 seconds for your changes to be visible.
Running with Docker
As an alternative to installing Ruby, Jekyll, and Grunt, if you're a user of Docker and Docker Compose, you can run a Docker image of hello-startup-site that has all the dependencies already setup for you.
git clonethis repo
- Go to
On OS X, using the docker-osx-dev project:
git clonethis repo
- Go to
- jekyll: used to assemble static HTML from the HTML
- PhoneGap: used to package up the static HTML as iOS and Android apps.
- GitHub Pages: for hosting the website.
- Bootstrap: for CSS, layout, general theme.
- Font Awesome: for icons.
The Startup Resources
The Startup Resources are generated
from YAML data files in the
_data folder (see the
Jekyll Data Files documentation for
more info). These resources are a work in progress and I welcome contributions
via pull request.
Each YAML file contains the information for one type of resource. For example,
deployment.yml contains all the resources related to deploying code.
The basic format is:
name: "Name for this resource" description: "Brief description of this resource." icon: "The name of one of the Font Awesome icons to represent this resource." type: "one of: products, technologies, or teams" categories: - id: "a-unique-id-for-this-category" name: "Human readable name for the category" sites: # List of websites for this category - name: "Website #1" url: "https://www.website-number-one.com/" image: "screenshot1.jpg" # 800x400 screenshot under images/resources description: "A brief description of website #1" - name: "Website #2" url: "https://www.website-number-two.com/" image: "screenshot2.jpg" # 800x400 screenshot under images/resources description: "A brief description of website #2"
_data folder for lots of examples.
Running the mobile app
Note: mobile app development has been put on pause and may not work any more
- Install PhoneGap
- Install the PhoneGap Developer App on your computer and the mobile app for your phone.
gruntas explained in the "Running the website" instructions. This will assemble all of the HTML.
- Add a new project to the PhoneGap Developer App by adding the
mobilefolder (which has
- At the bottom of the PhoneGap Developer App, it should tell you that the project is running and the URL. Connect to this URL in the PhoneGap mobile app on your phone.
- If you want to build the app for real, use PhoneGap Build.
Making PhoneGap and Jekyll work together
Both PhoneGap and Jekyll require a specific folder structure, and those are not mutually compatible. To make this all work using the same content in the same repo, I've used a bit of a hack with symlinks:
index.htmlare in the
- Everything else is in the normal Jekyll locations (e.g.
stylesheets). All of these files get compiled into the normal Jekyll output folder (
- I've added symlinks from the
_site. Therefore, if you point PhoneGap at the
mobilefolder, it will see the folder structure it expects.
_siteis normally generated by the Jekyll build process, you don't usually check it in. However, I had to in this case, or the symlinks won't work, which causes an error when GitHub Pages tries to build the site. Therefore, I've checked in a few placeholder files that ensure the folders we symlink to exist.