First things first. My new webapp tuttivisti is live!
This post is about how it came to be. In just one week. One person team. Crazy working hours.
So I was there immediately after receiving the news that YC did not select my team for this round. I thought I would feel depressed. I thought that the put down would ruin my mood.
Well it didn’t! I actually felt a jolt of energy. For some reason I felt a bit as if I had been freed. Can’t really explain why but my motivation and excitement bounced back up.
So what did I do with all this creative energy? Well my partner for diffract.me (the other project I am preparing to launch) had to go for a few days back home and we hadn’t planned our next iteration yet. So I decided to dive into something new, short and sweet.
Yep, I started coding. Again. From scratch.
I sat on the shoulders of giants. For this 1 week challenge I picked some of the most productive tools I know (and these will be topic for a future post):
I’d love to communicate properly the productivity boost that the set of frameworks above can give a developer.
No more spending endless hours trying to create a decent CSS/HTML layout. Bluetrip (and by saying Bluetrip I mean also the great Blueprint and Tripoli from which Bluetrip has been created) makes it trivial to put the stuff exactly where you want it on the screen. Cross-browser. No hassle.
Pinax. Ah, the joy. No more coding for the nth time a registration module. No messing with authentication emails. No rewriting another openid library. No more. It’s all there. Ready to use. Greatly structured. Amazing stuff. This is a game changer in my opinion.
Jquery. Well it needs no introduction. Jquery is a work of genius. For me it changed coding in Javascript from a painful experience into a pleasurable one. I love Javascript again.
Now will tuttivisti fly? I sure hope so, but the truth is that it does not matter. What I am saying to myself is: If I can build something like this in 1 week the question is not “will I ever manage to build a webapp that gains some traction?” but “How many attempts will it take? Is 5 going to be enough? 10?”. Maybe.
I have a lot more to say but will cut it short. I am at the end of a very very long and demanding coding spree.
Update: The past weekend a new version of tuttivisti has gone live, my 2nd week of work on the project, which incorporated much of the feedback I received, but a lot of work is still needed. So feedback is welcome, and – yes I know – I need a graphic designer.


28 comments ↓
“Dude”, building a business is far different from building a website. Unfortunately, the web site is the easy part, but funnily enough, it always has been. Hell, I could code up a website like that in C in a few weeks, but certainly couldn’t turn it into a business in less than a year.
Hi Ben,
I agree and was not implying otherwise.
My point is that the barrier of entry in any online niche is getting lower and lower. My excited remark was about the technology barrier coming down. Nothing more. Thanks for the feedback.
the django translation file in diffract.me is corrupted or something.
MOD_PYTHON ERROR
ProcessId: 1888
Interpreter: ‘diffract.me’
ServerName: ‘diffract.me’
DocumentRoot: ‘/htdocs’
URI: ‘/’
Location: ‘/’
Directory: None
Filename: ‘/htdocs’
PathInfo: ‘/’
Phase: ‘PythonHandler’
Handler: ‘django.core.handlers.modpython’
Traceback (most recent call last):
File “/usr/lib/python2.5/site-packages/mod_python/importer.py”, line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File “/usr/lib/python2.5/site-packages/mod_python/importer.py”, line 1229, in _process_target
result = _execute_target(config, req, object, arg)
File “/usr/lib/python2.5/site-packages/mod_python/importer.py”, line 1128, in _execute_target
result = object(arg)
File “/data/frameworks/django/django/core/handlers/modpython.py”, line 228, in handler
return ModPythonHandler()(req)
File “/data/frameworks/django/django/core/handlers/modpython.py”, line 201, in __call__
response = self.get_response(request)
File “/data/frameworks/django/django/core/handlers/base.py”, line 67, in get_response
response = middleware_method(request)
File “/data/diffract.me/live/diffractme/account/middleware.py”, line 24, in process_request
translation.activate(self.get_language_for_user(request))
File “/data/frameworks/django/django/utils/translation/__init__.py”, line 73, in activate
return real_activate(language)
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 209, in activate
_active[currentThread()] = translation(language)
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 199, in translation
current_translation = _fetch(language, fallback=default_translation)
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 176, in _fetch
res = _merge(projectpath)
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 163, in _merge
t = _translation(path)
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 145, in _translation
t = gettext_module.translation(’django’, path, [loc], klass)
File “/usr/lib/python2.5/gettext.py”, line 493, in translation
t = _translations.setdefault(key, class_(open(mofile, ‘rb’)))
File “/data/frameworks/django/django/utils/translation/trans_real.py”, line 62, in __init__
gettext_module.GNUTranslations.__init__(self, *args, **kw)
File “/usr/lib/python2.5/gettext.py”, line 180, in __init__
self._parse(fp)
File “/usr/lib/python2.5/gettext.py”, line 337, in _parse
tmsg = unicode(tmsg, self._charset)
File “/usr/lib/python2.5/encodings/utf_8.py”, line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: ‘utf8′ codec can’t decode byte 0xc3 in position 18: unexpected end of data
Oops, thanks will have a look!
You need to add links to Amazon and iTunes from the movies, that way you will have monetization right away.
Well done! I think the web app itself is very good and it is impressive what you did in one week.
Hi Denis,
Yes!! That is the very reason why I came up with this tiny site in the first place. I was looking for something easy to monetize. Or at least if not easy, something where the path to profitability was crystal clear.
So what you suggest is definitely at the top of my to do list. Thanks!
@sovande: you’re very kind, thanks!
I think tuttivisti needs some serious padding
@michael: I so agree
Nice list, thanks!
I wasn’t aware of Bluetrip.
Why not to use SRE in OpenID registration? Your site can fetch (or prepopulate) nickname and/or e-mail from OpenID provider.
@voldmar: good suggestion, have to look SRE up, thanks.
For mockups you have this one : http://www.balsamiq.com/
Serious bug when you click on a picture in the record for a movie, it links to http://tuttivisti.com/movies/movie/ which produces an error page: “ValueError at /movies/movie/”: “invalid literal for int() with base 10: ””
Probably that link is wrong.
Hi Bart,
well spotted. I’ll fix that shortly.
Great work Nicola, What you need is to team up with a buisness dude and work on an app that is needed in the market. I would like to work with you to come up with a business plan. Do ping me if your interested.
@ben: a website in C? How can that be possible?
You can’t seem to add a film that isn’t in your database.
Also you can’t seem to delete a film once it’s been added twice.
Also, you can’t tag films as seen or to be seen.
It would be nice to be able to alter the default of ‘This Week’ for when a film was viewed
@pbb,
Thanks for your notes. Indeed all the things you mention are missing and make the site less usable. I will pick them up.
As to my my source of data I have a surprise. Anybody can help add the missing movies! All the data comes from http://freebase.com.
Nick
I’ve been looking for some good materials for church to use in our Adult Information Classes and I think I’ve found just exactly what I’ve been looking for. Thanks so much for your services.
Great work! I’m proud to see Pinax used. Some of the extra stuff you had to build is actually planned for inclusion in future releases which hopefully will make future efforts like yours even quicker.
btw, can I quote you on the pinaxproject.com home page?
@james, thanks! I really appreciate your comment! And I am absolutely delighted that you want to quote my tiny project on the pinax homepage. Please go right ahead!
Hey Nick,
The sites looks great. Thanks for letting us know how you created it… will have a look at some of the tools you have used.
I did have a little problem adding Quantum Solace. When I type in the title I nicely get a picture displayed of the movie – but when I add it there is no picture. Hmm – must be a bug.
J.
@jonathan, yes Quantum of Solace for some weird reason can’t be read properly – though the poster is available on freebase. have to dig into that. definitely a bug.
The tools I mention as you’ll see are pretty far from the normal corporate Java standard that you are familiar with.
But I am convinced that’s the future!
So I very much would like to know your opinion on those when you had a look.
ciao, Nick
Hey man! I got your DM the other day. Just wanted to say hi. Cool beans, man.
I love using Blueprint too. Do you work on a Mac? If so, check out CSSEdit as well. CSSEdit + Blueprint = Freaking ridiculous CSS, freaking fast.
[...] spoken about a set of technologies that can speed up the time to market quite a bit. Read about it here if you missed [...]