Vincent Ritter

← back to projects

Simple Schedule

A simple way to manage bookings, appointments and gatherings on the web. Although, now it's over and there won't be anymore parties. Thank you to everyone that has been along for the ride.

Thank you, it's been a journey!

After many years, we've closed our doors. The party is over.

From meet-ups, multi day events to pyjama parties. Simple!

Simple Schedule was a new and simple way to manage bookings, appointments and gatherings. Even superhero dress up parties!

Born from a 'scratch your own itch' idea to learn more and broadening my skills. Which I then took with me on my new ventures and projects.

Thank you, Simple Schedule, for being a light in my exhausting few months of complete and utter stress during a dark time in my life.

Project posts JSON/RSS Feed...

Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.

After some time off, it took me a bit to get back into the swing of things. It also gave me the opportunity to rethink the core function of the app. On top, I’m extra motivated to make this work nicely.

Unfortunately there are still things on my mind at the moment from the past few weeks, but I’m trying not to think about it too much. Also, failing this challenge will negatively impact me in a way I cannot describe. I feel lost and stuck without progress at times.

Cosmetic changes and code base thoughts

To get into the groove I tweaked a few tiny things on the static design. Nothing major but it ultimately helped me ease back into my small but significant codebase.

On top, I was having a think about the codebase… not to bore you too much, but I think I’ll go ahead and give ASP.NET Core a try with this. It runs on the Mac and I can use Visual Studio on the Mac too - It’s an amazing IDE (although basically Xamarin under the hood). I’ve got great experience with C# already thanks to my past and didn’t realise ASP.NET development came this far for the Mac already. I was reluctant to use it as I did not want to spin up a Windows VM… on top, it’s quite easy to get everything deployed with Azure - up my alley too.

Create a new event

With the tweaks out the way, I started on getting the ‘create a new event’ page done. Of course I sketched it out first by hand, to get a feel for it.

Sure, a good start. Setting off, I wanted to avoid custom styling per page and have re-usable form elements that I could use across the app. All inputs and they way it’s set up can be re-used with just copying the HTML and I am done. That will help me with extra section down the line… and once the app gets a bit more complicated, which I’ll touch on in a minute, I could potentially add new sections quickly without too much headache. (Not sure if I just repeated myself).

I’m opting for natural language with descriptions and want to describe it more but also make it easy to use. I’ll no doubt tweak the wording, but I also want some of my own personality to show through on the web app.

On the Dashboard and on the 'My Events' page you’ll see a ‘Create new Event’ button, which will take you to the section.

It’s just a button.

As my sketch shows, I came up with the following design… in all its glory:

Simple, to the point and functional. The font type I’m not too happy with and will probably change that at some stage. Or, I just work on spacing a bit more. To be decided as I go. I’m certainly not happy with spacing of the header and the immediate section heading on smaller screens and will tweak that during the next few days/weeks.

In a true MVP (Minimum Viable Product) style I decided to remove some features until I hit beta. I want to concentrate on the single event (RSVP style) instead of time slots. I did work out how to do time slots, but I like to work on the database design on that to make sure I have a sound understanding of where to go. Mixing it up like this always seems to work for me.

There a few controls that show up once you enter a ‘Name’ or some other info that will allow you to save the event. This fades in at the bottom.

I may add a “Save as draft” option for more complicated events.

The date picker uses Pickaday by David Bushell. It’s pretty neat and just what I’m after.


If you want to look at the section on the front-end site, you can find it here.

Closing notes

With this out the way I can now concentrate on working on the events page. Probably get started right away to keep the momentum. After that I will probably create the ‘account’ and ‘billing’ pages, just to mix it up a little.


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up
  3. Code challenge - Day 2
  4. Code challenge - Day 3. Holding page.
  5. Code Challenge - Day 4. A login page and a few tweaks.
  6. Code Challenge - Day 5. Registration page and preliminary app navigation.

Happy to report that I'm actually working on Simple Schedule, my code challenge. Started late today but will do my very best to keep it up and get those posts coming.

Hope to resume my Code Challenge soon. Might even get into it tonight a little. Don't want to let myself down with not doing it... nor anyone that is following. Thinking of creating a small micro-cast to talk about it perhaps...

Not a good day. I'll have to pause my code challenge to see my Dad in the UK, he's in hospital. Preparing a few things today, earliest flight tomorrow morning.

Code Challenge - Day 5. Registration page and preliminary app navigation.

Today was the first day my daughter went back to pre-school, after some extended time away. With my little secretary gone I took my login page, pretty much duplicated it and started creating the register page.

I wanted a super simple register page, that would just take your email address. This in turn would register you and create that ‘magic link’ and log you right in.

As I build the UI I am also building a model in my head on how the app should work. Guess that will prepare me nicely… I hope.

The plan is that I check if the email exists and, if it does, prompt you to log in instead… As I believe it could be a bit confusing, if I do use magic links, I may just send out an email anyway with a login link. TBC. (thinking out loud).

The thank you page with some details about verifying your email. Not sure if I will use this now… instead I just want people to go straight to the Dashboard/Overview screen.

Thoughts on email verification are that I’d like to include a ‘reply to’ address to emails that would get sent out for specific events. I might just drop it though, for ease to the customer.

You can find the URL for the registration page here.

Feel free to click around and you will see how it should work.

I may just revisit the login pages in the next few days to take into account magic links.

Thoughts on the logo

I wasn’t happy with my “10 minute” logo, so my sister has decided that she’ll sketch something up for me to use. Awesome! She actually helped turn my sketch for the justcode.tv logo into a vectored drawing!

Starting the App UI

I few months ago I was working on a concept, from an old project, where I designed a header navigation already. I like it so decided, for speed, to re-use most of it.

Nothing too fancy and nothing that is in your face too much. Keeping it minimal, but functional, is the aim. Some special stuff with a gaussian blur when you’re using Safari… I actually have a small javascript snippet that adds a “superpowers” class to the HTML.

Icons are always nice and I decided to spice it up a little with feather icons. I really like them. Not a huge fan of Font Awesome… just a tad overused!

And a account dropdown to the right.

The verification info is there just to remind you that the account email needs to be verified. Maybe a little over the top and will probably have it a light grey/gray background with red text. You can see the icons work really well here.

That section is also fully responsive so works across different screen sizes.

You can see some of the code I wrote for the header and dropdown. Excuse the class names… it works for me to keep track of it all.

Sitemap

I created a very simple sitemap to help on the way so I can tick off all the pages I need to consider.

I’ll expand on that as I go. However with this I can concentrate on the designs and make sure I don’t miss anything.

Don’t want it to turn into a monster either so I need to watch myself and keep features to minimum, otherwise I’ll be coding till summer!


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up
  3. Code challenge - Day 2
  4. Code challenge - Day 3. Holding page.
  5. Code Challenge - Day 4. A login page and a few tweaks.

My little "office". Was working away on my project and took a break.


Code Challenge - Day 4. A login page and a few tweaks.

A mixed day today but achieving my goal of getting something up. I mainly worked on getting the login design finished. This will sit under ‘my.simpleschedule.net’ page once it’s ready as I want to keep it separate from the marketing website. However, I am jumping the gun here a bit.

Getting set up for prototyping…

With the holding page out the way yesterday, I did the usual of setting up my project, creating a new repo named ‘SimpleSchedule.Frontend’. That’s clear enough for me… although might be a bit confusing down the road.

I decided to use Jekyll to help me with the frontend UI. I didn’t want to use just plain old HTML and then do some funky magic to re-use stuff. Jekyll, for me, fits the bill of what I want to achieve. Not only that, but I can pass in variables and others to partial includes.

Another useful thing with Jekyll is that you can set up custom collections. So for each section I am designing I am going to try and replicate the URL structure that I would like to achieve once I write the app. Not only that but it gives me a clearer view into the different sections.

You can see above that all I need to now is create something like the below in my Jekyll folder:

This in turn creates ‘/login/index/‘ or ‘/login/forgot/‘ url structure. Very cool and useful a bit later on. I don’t want to get too far ahead at this stage of the post though.

With the normal Jekyll installed and collections working, CodeKit doing its thing, I once again set up my server to receive the repo. I set up git with my initial commit.

Yup, new emoji right there. It’s just me that sees the commits, so I try and have a bit of fun. The server receives the change and builds the site. All good! If you are interested into what that build script looks like on the server, I just use the following build script once it pulled the repo:

bundle install --path .vendor/bundle
bundle exec jekyll build --config _config.yml,_config.stage.yml

Of note, I use a second ‘_config’ file for the staging site. This allows me to change a few things compared to my local dev environment. Handy!

The sketch…

Before I proceeded I had to get down the sketch of what I wanted to do. A great quality sketch.

Just your usual looking login form with an email and password input.

On a side note… I am unsure if I should use passwords. I always preferred those magic links. I’ll think about it though. I may do magic links first and then incorporate passwords at some stage. I am not too keen on using third-party auth either.

The login page

With collections working and my default styles in I went ahead and created the pages. Putting each section of it into partials so I can re-use them later on.

What I want to achieve is a full static replica, to the best I can, before I build the app. Yes, things will change as I go but this will ultimately help me define the app, what it does and also help me with database design.

It’s a bit weird to start with the login page… I know. I have a simple explanation why I do it this way… I want to experience the app from the first point on - this is usually the login page if you are registered. Granted I should probably work on the registration page first. It’s important to me that I get it right from the start and not miss anything.

With a common style for buttons and inputs, as you have seen on the holding page, I started putting it all together. And here it is:

Simple and clean.

I also created the forgot password page and some of the error/info message pop ups that you might see.

The help section changes depending on the page you are on. I am a huge fan to use different and natural language here. It’s a little detail but I like it. Regarding the ‘help’ page, I’ll be building that alongside the app… that is the plan anyway.

If you’re interested how all this comes together for me in code and how I separate everything… here you go:

Introducing the dev url

As I mentioned, I’ll be opening the URL to everyone to see and comment as I go. You may even see it change during the day as I push changes. I invite you to have a look.

Before you head there though, I provided you with a temporary front page and a ‘Site menu’ which you can see at the bottom left. This will help you to navigate around the site and explore the different section. I can only stress that this is a fully static site and does not work. But you know that!

Links will begin working as I go so feel free to click around at random times to see if something has changed.

Here is the url: https://frontend.dev.simpleschedule.net

As I said, the first page will be an overview of all the pages that are ready and completed. Just start with the first link.

Also there is a little ‘site menu’ button at the bottom left. Clicking that will bring up the page navigation for you to click around. I thought that might be useful to have so I can check all the pages with easy. This won’t ship in the live app of course.

Quick thoughts on the design

I am not too happy with the logo, just doesn’t look right and there is a lot of blue. The logo will probably change. An easy change. I also wanted to introduce a secondary colour. You can see a nice yellow as the bullet points in the help section, I’ll be using this more.

A few other things

Some other things, after I pushed this up - I changed the holding site a bit and introduced a blue button, re-worded the text slightly and reduced the size of the logo. Always good to sleep on a few things.

Another thing, which took me a bit of time, is that I created a special section on my site to pull together all the posts for the code challenge. I thought that was important so I could reference it easily in a few months time and hopefully add a few more challenges. I hope it also helps you if you come across the post or are already following.

As always, I ticked off a few things on my TaskPaper document, which you can see here.

Day 4 - Goals & Overview:

  • - Set up front end dev environment @done
  • - Login page @done
  • - Open up dev URL @done
  • - Add link to my site on frontend site @done
  • - Add special section on VR site for the code challenge and link to posts @done
  • - Add blue button to holding site @done
  • - Reduce size of logo on holding site @done

I may just start the registration page tonight and will continue during the day tomorrow.


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up
  3. Code challenge - Day 2
  4. Code challenge - Day 3. Holding page.

Have been working hard on Day 4 of my code challenge. Also made a few changes to my site so I have a dedicated section for all of the code challenge posts. More updates later. Having a long break until tonight so I am fit to write the post.

Code Challenge - Day 3. Holding Page.

Earlier today I managed to upload a simple holding site for the project. Getting set up with any type of project always takes a bit of time. So, with best intentions, below follows how I usually go about creating stuff.

I didn’t want to do anything grand or really anything that would blow people away. I dig simple and fast, so that is what I did. There are certainly rough edges, but like anything… I will iron those out.

Pen and Paper

Every project starts with pen and paper for me. I have stacks and stacks of squared paper notebooks full of drawings and notes. I’m not sure if I could work without my notebooks... probably not.

First thing I did was sketch out a very simple layout of the holding site. As I said, I’m no designer.

You’ll notice that I write in CAPS all the time. I have to thank my Geography teacher many many years ago for always writing in CAPS on the whiteboard. Just easy to read… for me.

Everything I work on, starts like this. A simple sketch so I can get my idea down on paper and out of my head. No details, just pure layout, so I have reference to it as I build it. As I said in my previous post, I will design the site in the browser and not use a tool like Sketch. The reason for that is that it would take me a very long time. I’d rather see small gains over a few days then re-align stuff in my Sketch file. On top, the 60 day time limit I’m giving myself won’t allow me the luxury to do this (I’m just not good enough in Sketch).

Project set up

Every project, at the code level, has to start somewhere. As I’m going I’m making photos and screenshots which I can share in these posts. Simple Schedule already has a design folder where I put all these, including the logo I created in Sketch yesterday (in the early morning!).

Everything from design and code lives in iCloud Drive. Yes, weird! But it works for me.

Update: I had some feedback on iCloud Drive and generally storing files like these on the "cloud". I understand the risk. I also understand that it is probably frowned upon, especially in a corporate environment. The decision to move was a long one, with a gradual move to iCloud Drive... making sure everything works. I can only stress to try and see if this works for you. One project at a time and give it a chance to sync. At the start it was not perfect, but as time went on it got much better! I generally just work for myself, so it works for me. iCloud Drive has saved me countless of times this year, with full restores to my then dying laptop. It did it every time, pulling down everything without stress. Yes, there were problems with a few repos loosing their place with commits... nothing a git pull couldn't resolve though! iCloud Drive for me serves as a back up. My code is always checked in and pushed at first instance. Thanks Alec and Elliot for your comments.

I have two folders, one for “Design” and one for “Dev” - Dev being the one that has all my code projects. The design folder also lives in the code folder as an alias so I can jump between the two easily. Every part of the project will also have its separate folder which also have their own git repo tied to it. More on that in a moment.

So a typical folder structure that I would use for this project is:

‘simple_schedule’ - The main folder that holds all the parts pf the project from code to design.

  • ‘SimpleSchedule.Design’ - this is the alias.
  • ‘SimpleSchedule.Holding’ - this is the holding site.

There will be more down the line, for example I’ll add ‘SimpleSchedule.FrontEnd’ tomorrow and then in a few weeks I’ll add ‘SimpleSchedule.App’ or something for the Rails apps.

For the holding site I decided to use Jekyll. It’s super easy to set up, it doesn’t require a database and it’s something I used for many years. I don’t really like the idea of having a database laying around just for the holding site. This may change once I build out the marketing page down the road, but I don’t want to think about it just yet.

With the folder set up and the ‘jekyll new’ command run, I open up Sublime Text with the project. There are many text editors out there, like Atom and Visual Studio Code, but I just love the simplicity you find in Sublime Text. I was a heavy user of Atom but earlier this year I decided to go back to Sublime. It might not be as feature rich from just looking at it, but I find it really nails the balance. Plus it doesn’t run Electron.

I organise and tweak a few things with the default Jekyll install to a more organised folder structure. This works for me nicely as I have a particular way with these things. I am German, what do you expect?

As you can see, ‘_src’ is where the Jekyll specific parts are, this then builds into ‘dist’. I keep ‘dist’ out of the Git repo and I build the site on the server. More on that in a moment.

‘_assets’ is where I keep all my images, stylesheets, javascript and other things. I work for myself and always use CodeKit to help me compile and optimise everything I need. Yes, I did try gulp and others but it really is a bit too much… especially when you work for yourself. Again, this works for me. Plus I don’t have loads of ‘node_modules’ lying around in my code folders… I do occasionally use build tools for client work, but that is rare. I usually let them handle it after I hand off the project. CodeKit compiles everything into an ‘assets’ folder in ‘_src’.

First commit and deploy

Now it was time to set up my server to pull down my Git repo from GitHub and build the site for me. I personally use Laravel Forge to manage my servers. It’s powerful and I’m super happy I came across it earlier this year! It’s mainly based at PHP but with set up you can work with Ruby and others quite easily.

With the GitHub repo set up I opened up Tower. Tower is a Mac App that does git amazingly good. It’s paid but I urge anyone to give it a try. It’s great at organising your projects too! You can even have folders/groups. It’s really powerful and I wouldn’t know what to do without it. They also have a Windows app.

I already put a few ‘default’ styling files and some various other files, that I use across my projects, into the project. With that, my first commit to see if it all works.

I told my server which repo to pull and also told it to watch for changes to the repo, so it would grab it as soon as there is a change and then build the jekyll site on the fly. On top, Laravel Forge also offers Slack notifications when a build succeeds or not.

It was done, the site deployed and built without a problem!

Knowing that it now worked, I started to build the site.

Building the site

With the first milestone reached I continued work with budding it out. As I develop locally and running Jekyll, I keep Jekyll in a build mode which watches for changes. I tell CodeKit to look at the ‘dist’ folder and serve that site on the small web server it runs. Every time I hit save in Sublime, Codekit will refresh the browser. An added bonus to this is that I can look at my site on all my devices on the home network. Great for responsive testing! … although, for this stage it wasn’t too important to me.

I only needed the homepage at this stage. I built it out over the course of an hour or so.

The image above shows the completed site, in code. You can see how I go about using Jekyll here. I really love the Liquid templating language. If you want so see it in detail, just drag that image to your desktop... I'll think of adding some sort of pop at some stage.

At this stage it is probably overkill of what I have done and could have had one page with everything. But that is not how I work. I also wanted to try and pull in a .markdown file as an include, but figured it doesn’t convert markdown when you do that. No problem, there is ‘markdownify’ option that will help with that. If that’s a bit technical… sorry.

I always choose to have CSS and Javascript to the right of the HTML or code files. It’s a little bit easier to keep track of things that way.

The code above is not perfect but, once again, it works for me. Especially the SCSS, it might look weird but I find I can keep track of everything much better that way. I have a few predefined styles that I can reuse and you can see me using the ‘@extend’ keyword a lot.

In this case I didn’t need specific media queries, to size it depending on the screen size, because I try and build with that in mind from the start.

Getting it live

There wasn’t much for me to do except push my changes to GitHub. As this was only a holding site, I only pushed once, once the site was finished locally. On larger projects I usually have a ‘dev’ or ‘staging’ url and push them there first before pulling the trigger. We’ll do that once we build out the Front-end UI this week.

With it pushed up, I received the Slack notification saying it was deployed. And here it is.

It’s simple and will do the job until I figure out a better marketing message for the app. It loads fast, uses no hosted fonts and there is no tracking either.

The email box goes directly to MailChimp for signup. As I said previously, I’ll be running Simple Schedule through my company so you’ll be seeing my company details on sign up. Not sure if that might confuse some people.

Also, I wanted to have a small disclaimer about the sign up. I don’t like spam, I don’t like marketing email so I thought it was important to make it clear what I’ll use the email for.

Closing thoughts

Yes, it’s rough on the edges. Yes, there is no favicon or OG icon. The text on the page might not be perfect either. However, over the course of building the app I’ll slowly be replacing a few things as I go.

With this small achievement, I am now geared up for staring the front end UI for the app. I’ll be sharing details about this tomorrow and will be opening up the URL for people to follow along.


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up
  3. Code challenge - Day 2


Uploaded the holding page for my code challenge web app earlier. Day 3 write up coming a little later.

Opted for an early night today and will continue Day 3 of my code challenge during the day. Hope to get the holding site up and get started on the UI design shortly afterwards.

Code Challenge - Day 2

Today I further redefined what the app should do well and expanded on my TaskPaper outline. I also decided to create two other TaskPaper documents, one for the Day achievements - so I can keep track of what I did and what I’m planning for tomorrow, and the other one to keep track on contributions that I have received from the community over at Micro.blog and other mediums.

Here is my day overview from TaskPaper from of what I’ve @done… not much… but steady:

Day 2 - Overview:

  • Re-instate Mailgun account. Will use this for transactional emails. @done
  • Come up with a simple logo for the app. @done
  • Further define the app. @done
  • Point domain to server IP @done

Pricing

Doug Lane, over at Micro.blog, has given me a great idea and contribution to the project on how I can offer packs of events instead of just a ‘pay as you go’ model.

For the pricing, have you considered allowing people to buy "packs" of events? You could do something like a 10-pack and then have the option to autorenew for the next 10 when the balance gets down to one or two. It still avoids a subscription fee for times when the product isn't in use, but it might help with cash flow and reducing the impact of any per-transaction processing fees (if you have any).

I really love that idea and, to be honest, I haven’t actually thought of the one time processing fees. I’ll be using Braintree for my payment integration. Main reason for that, Stripe is not available where I have my business. Braintree takes 1.9% and €0.30 per transaction. They also take an extra 1% for transactions outside of my “home currency”. So 2.9%.

So, I think I’ll initially offer a ‘pay as you go’ payment model and a pack of 8 events for $10. I think that works well. I don’t want to do $9.99 or $1.99, never really liked that. I may just tweak pricing as I go though.

Also I am wondering if I should offer 1 event per year for free, or perks that give you a percentage discount depending on how many years you’ve been using the service for… that’s just an idea at this stage and probably won’t ship it in the app.

Thank you Doug!

Transactional Email

I was looking at both Postmark and Mailgun for transactional emails. I already had a Mailgun account, which I never used, so I emailed them to get my account going again. They were super friendly and did it straight away.

With 10,000 emails free per rolling 30 days, this seems a perfect fit for me. Postmark does offer the first 25,000 emails for free. Both have Ruby Gems, so I'm happy with that!

I did look at MailChimp but really can’t justify the cost of adding Mandrill. I believe that runs at $199/month, not including every transactional email.

Keeping in mind that I want something that doesn’t generate too much noise to the user I defined a few emails I’d like to send out:

  • When a user inputs booking details - send to account holder.
  • When account holder approves the booking via admin, send email to the person making the booking.
  • Have an option to turn the above off.
  • Account registration success.
  • Forgot password.
  • Login magic links.

As usual, that might just change as I go and build the app.

On that note, I set up Mailgun and got the domain verified. Good.

IP addresses and URLs

Nothing too exciting here but I pointed the domain, simpleschedule.net, to one of my servers now. There is nothing there yet.

Had a quick thought on URL structure for the sites as there will be 3 different parts:

  • App login url should be 'my.simpleschedule.net'.
  • Help site url should be 'help.simpleschedule.net'.
  • Main marketing page, simpleschedule.net.

Easy enough and I actually quite like how 'my.simpleschedule.net' looks and sounds.

Logo

I’m no designer but wanted to get some very early ideas out there using Sketch. It’s only text based with a simple line underneath. Hoping to get some help here from a friend, follower or family member.

I love ‘Avenir Next’ as a font in general. The heavy font looks a bit too heavy so am also trying an italic one. However, I don’t see it lasting and just wanted something for a holding site.

Tomorrow

Not planning too much on the planning front tomorrow. Hoping that I can get a real basic holding site up with an email box, so people can sign up to the newsletter if they so wish.

Next week

I don’t really want to say too much at this stage but the famous plan is to start the UI for the front end, for ease and speed I’ll use pen & paper and build it in the browser. I’ll also be opening up the URL for this so you can follow along.


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up

Tweaked and rewrote some of my Day 1 blog post from last night. Affiliate links didn't feel right, so I put them separate at the bottom of the post, after all - I am writing for myself first. Also removed some text that really didn't belong.

Code challenge - Prelude and Day 1 - Setting things up

This will be a regular (daily) series of blog posts for my own personal code challenge.

Prelude

This week I already set wheels in motion by thinking about the name for my web app. I never really liked businesses ending with ‘ly’, ‘fy’ and you name it. You know what I mean… something like ‘Appointly’, ‘Calendly’… *cough*

So, I came up with two very simple options for myself… they are not perfect and I might just change it:

  • Just Schedule
  • Simple Schedule

I wanted to go for Just Schedule as I named a few of my projects starting with ‘Just’ - kind of inspired by “Just Do It” and “It just works” but encapsulate that it “just” does what it says and nothing else.

I consulted my wife, who’s opinion I trust, and she recommended “Simple Schedule”. So did my sister.

Simple Schedule it is. I think it perfectly fits what I want to do at this stage… create a simple scheduling/appointment web app. I have to be honest, I am not great at coming up with names… just like naming methods and functions in code!

I registered simpleschedule.net with Gandi.net, a registrar I hold many domains with for many years, on Tuesday, 5th of December 2017. Naturally the .com was taken by some parked domain service. ¯\_(ツ)_/¯

There is nothing on the domain yet, still at the Gandi holding page from when I registered. Update 2017-12-10: This now points to one of my servers with a holding page coming up on 2017-12-11.

Gandi does offer awesome DNS service out the box, however I decided to use my DNSimple account in this instance. Their interface for adding domains and keyboard shortcuts are just awesome. Not to mention really awesome customer support. I run a few clients through the account so it doesn’t add too much to my costs. Yes, there are free services out there like Cloudflare and others, even Linode (which I also use) have DNS hosting. Anyway, more of a personal preference.

Day 1

Today was my first official day on the project. I already blogged about it earlier, to get me started. Blogging about something, especially a challenge, just helps me to motivate myself to keep going. Yes, I did try something similar in the past… unfortunately my work circumstances were not great.

I opened up TaskPaper today, to get me back into the swing of using it. I just started jotting down everything that was in my head about the app. I made several notes in my “pen & paper” notebook that I always keep on my desk. Without it I would be lost!

I wanted to jot down a quick feature set of the app, although it turned out I got into more details than I wanted. I also created a task list just for Day 1, to try and work through some crucial little steps.

To summarise day one from TaskPaper:

  • - Set up email @done
  • - Set up Mailchimp and link account to agency account @done
  • - Verify domains with Mailchimp @done
  • - Work on quick overview feature set @done

@done means it’s done :)

MailChimp I’d like to use for capturing email addresses for early sign ups and perhaps some beta updates as I go. Next week I’ll probably work on getting this integrated into a holding site. Down the line, I may use it for 'opt-in' marketing emails just to let people know what updates the app is getting, although that will be 'opt-in' only. I never liked spam and want to respect my users.

Email is set up and working through hello@simpleschedule.net and sent that famous test email to myself… something I always do to see if it all works. Always exciting! Gandi offers free mail service with your domains, which suited me for many many years.

Regarding the feature set… I did start work on a high level overview of the app and what it does. I also got into detail on pricing. Pricing is important and I want to do something a bit different. I want to avoid monthly pricing. Everyone does that. Perhaps it is too early to think about it… however I wanted to do something that is abnormal compared to the natural flow of things I see around the web. I’m not sure if it will work. But I do want to avoid monthly fees being charged for months and months for a customer that hardly ever uses the service. I couldn’t sleep at night knowing I would rip someone off.

To save a headache and a half, I’ll run the site through my consulting business based here in Kraków… just to keep it simple. If it’s something that requires a separate entity down the line, I’ll change that. One tax return is easier than two!

So, here is a very early view of the app, ideas and pricing. I haven’t changed anything, so you can see how this works in my head:

Early thoughts:

A few random thoughts about the app to get me into the flow of thinking of everything.

Pricing:

  • - $2 per event.
  • - no monthly charges.
  • - free for early believers and contributors for life.
  • - Easy because you just do it once and be done with it. Don't want to hold anyone ransom and forget about their bill. Less support headache, maybe.
  • - Describe why $2. 19% to tax man plus fee to Braintree and conversion fees, yay.
  • - First event for free.
  • - BrainTree UI drop in integration (keep it easy)?
  • - Save credit card info.
  • - Allow Bitcoin? Maybe... BitPay? Can't use Stripe yet... not in Poland at the moment.

App:

  • - Simple to use, focusing on just making an appointment.
  • - Easy UI. Nothing dramatic and too fancy.
  • - Little details here and there (I know what that means).
  • - Built on Rails.
  • - Hosted on Heroku.
  • - Simple registrations.
  • - Have different types of possibilities for events:
  • - A full day event - useful for large gatherings i.e meet-ups, code challenges etc.
  • - A full day with time slots - useful when taking bookings for meetings.
  • - An event, running over multiple days, with either of the above.

Other:

  • - Run through my business to keep costs down.
  • - Do something like "by Vincent Ritter" - explain that on invoices and payment receipts.

I’ll expand this over the next few days. Also, for those that would like to see a screenshot of the notes above, here goes:

Overall slow today but steady progress. I've done a lot of offline thinking over the course of the last few weeks and hope to get everything down and 'locked in' over the weekend.


Side note:
I wrote this article mainly for myself, to follow along when I look back at it at some stage. If you did like what I wrote and are interested in some of the services I mentioned above please consider using the following affiliate links, this will help me reduce some of my costs. I use affiliate links because I truly believe in the service and use it day to day.

Been writing up Day 1 for my own little code challenge. Going to get that published soon. As it's my first post for this project... it will have rough edges. But that's OK. After all, I'm here to learn and improve my writing skill and style too.