Nibbl - introducing my dining app and startup

Hello fellow Meteorites and a better-late-than-never Happy New Year!

Sharing out the web app I’m making for my startup for the first time:

https://nibbl.com/invite/meteor

Just sign up and I’ll add anyone to the beta – I have real restaurants listed and can’t have everything open to the public yet. A screenshot to… wet your appetite into registering :grin:

There are still a few major features that need building but one of my personal milestones was sharing my work with the Meteor community, so here it is.

I started learning Meteor in 2014 and it’s been amazing – in January of last year I quit my job as an Agile/Scrum product manager to work on my app full-time.

I’ve been through one ‘pivot’ so far and to keep things short I’ll save that story for another day.

nibbl has since been course-corrected to become a fully responsive web app that lets you book reservations and prix-fixed menu dining experiences at a curated list of local restaurants, with a highly visual focus on the food and the chefs behind it.

I still have to create the actual reservation/booking system and the review system – massive undertakings – but I think I can have them largely done by the end of February.

Everything else in the app is real, working, and built from scratch.

I’m on Meteor 1.1.0.3 now and I updated Mongo 2.4->3.0 last night. I’m going to tackle upgrading to Meteor 1.2 next so I don’t get too far behind. With the 197 packages I’m using I’ll probably end up burning this entire week on the process.

Zero outside investment so far and nibbl is entirely mine, though I’ll soon be sharing out my business plan and investment opportunity with a small pool of initial friends and acquaintances who have expressed interest. Wish them luck :slight_smile:

There is plenty more I’d love to share and I look forward to contributing to the community - feel free to ask about anything I’ve built or integrated into my app and I will do my best to help out.

Some technical points:

  • Infrastructure - Amazon VPC - 3 Ubuntu instances w/dedicated IOPs - nginx load balancing/caching front-end server, mid-tier app server w/two meteor instances each behind nginx, Mongodb 3.0 server with Oplog tailing and 3 replica sets, Amazon S3 for static file storage w/Cloudfront CDN.

  • DB monitoring/backup with MongoMMS, Logs going to Loggly, Meteor monitoring with Kadira. Paid plan as soon as I get the $$, Arunoda!

  • Full SSL support

  • Responsive design supporting down to an iPhone 4, or at least an attempt to. Major PITA. No bootstrap templates here. No wonder people just make mobile apps …

  • Image uploading with Filepicker to S3, Image editing with Aviary

  • bootstrap calendar + fullcalendar.io for dates/scheduling

  • Mandrill templates for outbound emailing

  • Social friend system (likely to rename to ‘follow’), twitter-like public profiles (e.g. nibbl) with initial basic privacy feature (e.g. hide friends list from public/hide from friends)

  • Custom-built web-based one-on-one and group chat feature with Twilio fully integrated for SMS notifications and SMS interaction/replies. Infinite scroll-up. Full support for two-way image exchange along with the text exchange - images processed server-side by cfs:graphicsmagick then stored in S3/CDN. Support for multiple simultaneous text-based conversation streams (currently limited to two per-chat type, more as I get the $$ to pay more to Twilio).

  • International SMS support - custom country pre-fix selection

  • Per-user and per-server limits for outbound email and SMS throttling (but please dont try to hit them…)

  • Job scheduling / queue system with meteor-job collection from Vaughn Iverson (primarily handles jobs for outbound email and SMS)

  • Disqus integration for blog, CodeMirror for markdown support in blog editor (admin only)

  • x-editable, select2, parsley, masked for forms

  • easycron for scheduled server-side calls pulling in data from Twitter, Instagram

  • slick carousel + magnific pop-up, though I’m moving away - major PITA with Meteor’s reactivity.

  • Simple-Schema/Collection2 for almost all collections. No brainer!

  • Geolocation/typeahead bar – took a ton of fiddling to get right.

  • Processes to pull additional data from Facebook/Twitter sign-ins, add to current user’s profile (e.g. Avatar, first/last name, email, etc).

  • font-awesome is awesome.

11 Likes

Congratulations on launching! It’s so hard to actually get to the point where you’re happy to launch, tremendous achievement right there. :rocket: If you create a company profile on StackShare, you can list out what’s in your tech stack in a really cool way. I’d be really interested in seeing the full monty.

http://stackshare.io/create-stack

3 Likes

Thanks for the suggestion, I dig it! Created my stack and added a few things to it : http://stackshare.io/nibbl/nibbl

2 Likes

Upgraded to Meteor 1.2 today, wasn’t as bad as I thought it would be.

Had to spend some time removing and re-adding packages, running updates, tweaking version constraints on some old local packages, updated node to 0.10.40 on my dev machine (sudo npm cache clean -f && sudo npm install -g n && sudo n 0.10.40) and updated my node version in my mup configs to 0.10.40 then ran a mup setup && mup deploy…

The only hiccup I ran into was with accounts.onlogin which now is called by the client (this actually helped me start simplifying a bunch of login processes).

Looking forward to 1.3’s faster build times and enhanced Cordova support as Mobile is something I have to tackle next.

I’ve been too heads down making nibbl to have paid attention to all the Blaze/Angular/React noise lately and still don’t know what route I’m going to go for mobile. I am happy to see Blaze is going to stay a somewhat first class citizen as I think it was paramount to my success in using Meteor.

On another note, I’m not a programmer and this is my first ever website/app - I started learning html5/css3/javascript while I was learning Meteor year and a half ago :slight_smile:

Looks great and nice job! Best of luck with Nibbl. I use Yummly often and reminds me of this.

Hi, Do you use a package to inject the Meteor JS file when the page is loaded ? How did you achieve that ? thanks

1 Like